home *** CD-ROM | disk | FTP | other *** search
/ Games of Daze / Infomagic - Games of Daze (Summer 1995) (Disc 1 of 2).iso / x2ftp / msdos / libs / knowhow4 / carcase.cpp < prev    next >
C/C++ Source or Header  |  1994-10-10  |  4KB  |  124 lines

  1. // CARCASE.CPP
  2.  
  3. #include "carcase.h"
  4.  
  5. void show_bat(rect where, int pixels,
  6.               int color1 = pColorSet->colors.BORDER_COLOR1,
  7.           int color2 = pColorSet->colors.BORDER_COLOR2); // draws button
  8.  
  9. void Carcase::show(BORDERS b_type, rect c, int shadow)
  10.     {
  11.     int color1 = pColorSet->colors.BORDER_COLOR3;
  12.     int color2 = pColorSet->colors.BORDER_COLOR1;
  13.     int color3 = pColorSet->colors.BORDER_COLOR2;
  14.  
  15.     switch(b_type)
  16.     {
  17.     case NO_BORDER:
  18.         break;           // no carcase
  19.         case SHOW_BORDER:
  20.             setlinestyle(SOLID_LINE, 1, 1);
  21.         setcolor(color1);
  22.             ::rectangle(rect(c.origin + shadow, c.corner - shadow));
  23.  
  24.             setlinestyle(SOLID_LINE, 1, 3);
  25.             setcolor(color2);
  26.             ::rectangle(rect(c.origin + shadow + 2, c.corner - shadow - 2));
  27.             ::rectangle(rect(c.origin + shadow + 5, c.corner - shadow - 5));
  28.  
  29.             setlinestyle(SOLID_LINE, 1, 1);
  30.             setcolor(color1);
  31.             ::line(c.origin.X + shadow + 6, c.origin.Y + shadow + 6,
  32.                c.corner.X - shadow - 6, c.origin.Y + shadow + 6);
  33.             ::line(c.origin.X + shadow + 6, c.origin.Y + shadow + 6,
  34.                c.origin.X + shadow + 6, c.corner.Y - shadow - 6);
  35.             setcolor(color3);
  36.             ::line(c.origin.X + shadow + 6, c.corner.Y - shadow - 6,
  37.                c.corner.X - shadow - 6, c.corner.Y - shadow - 6);
  38.             ::line(c.corner.X - shadow - 6, c.origin.Y + shadow + 6,
  39.                c.corner.X - shadow - 6, c.corner.Y - shadow - 6);
  40.             break;
  41.     case STANDART_BORDER:
  42.         setlinestyle(SOLID_LINE, 1, 1);
  43.         setcolor(color3);
  44.         ::rectangle(rect(c.origin + shadow, c.corner - shadow));
  45.  
  46.         setcolor(color1);
  47.         setlinestyle(SOLID_LINE, 1, 3);
  48.         ::rectangle(rect(c.origin + shadow + 4, c.corner - 4 - shadow));
  49.  
  50.         setcolor(color2);
  51.         ::rectangle(rect(c.origin + shadow + 2, c.corner - 2 - shadow));
  52.         break;
  53.     case BUTTON_BORDER:
  54.         show_bat(rect(c.origin + shadow, c.corner - shadow),
  55.               2, color3, color1);
  56.         break;
  57.     case HILITE_BORDER:
  58.         setlinestyle(SOLID_LINE, 1, 1);
  59.         setcolor(color1);
  60.         rectangle(rect(c.origin + shadow + 1, c.corner - shadow - 1));
  61.         break;
  62.     case PRESS_BORDER:
  63.         show_bat(rect(c.origin + shadow, c.corner - shadow),
  64.               2, color1, color3);
  65.         break;
  66.     }
  67.     }
  68. /////////////////////////////
  69. void show_bat(rect where, int pixels, int color1, int color2)
  70.     {
  71.     int pix = (pixels > 1) ? pixels / 2 : pixels;
  72.     setfillstyle(SOLID_FILL, color1);
  73.  
  74.     bar(where.corner.X - pixels + 1, where.origin.Y,
  75.     where.corner.X, where.corner.Y);
  76.     bar(where.origin.X, where.corner.Y - pixels + 1,
  77.     where.corner.X, where.corner.Y);
  78.  
  79.     setfillstyle(SOLID_FILL, color2);
  80.  
  81.     bar(where.origin.X, where.origin.Y,
  82.     where.origin.X + pixels - 1, where.corner.Y - pixels + 1);
  83.     bar(where.origin.X, where.origin.Y,
  84.     where.corner.X - pixels + 1, where.origin.Y + pixels - 1);
  85.  
  86.     if(pix != pixels)
  87.     {
  88.     bar(where.origin.X, where.origin.Y,
  89.         where.origin.X + pix - 1, where.corner.Y - pix + 1);
  90.     bar(where.origin.X, where.origin.Y,
  91.         where.corner.X - pix + 1, where.origin.Y + pix - 1);
  92.     }
  93.     }
  94. /////////////////////////////////////
  95. /*
  96. void demo()
  97.     {
  98.     setfillstyle(SOLID_FILL, pColorSet->colors.BAK_COLOR);
  99.     bar(0, 0, getmaxx(), getmaxy());
  100.  
  101.     show_bat(rect(10, 10, 50, 30), 6, LIGHTGRAY, WHITE);
  102.  
  103.     Carcase carcase;
  104.  
  105.     carcase.show(HILITE_BORDER, rect(10, 60, 50, 100), 0);
  106.     carcase.show(BUTTON_BORDER, rect(70, 10, 110, 100), 0);
  107.     carcase.show(SHOW_BORDER, rect(120, 10, 160, 100), 0);
  108.     carcase.show(STANDART_BORDER, rect(170, 10, 210, 100), 0);
  109.     carcase.show(PRESS_BORDER, rect(220, 10, 250, 100), 0);
  110.     }
  111.  
  112. void main()
  113.     {
  114.     if(!init_KNOW_HOW())
  115.         return;
  116.     demo();
  117.     pColorSet->loadColorSet(1);
  118.     demo();
  119.     pColorSet->loadColorSet(2);
  120.     demo();
  121.     close_KNOW_HOW();
  122.     closegraph();
  123.     }
  124. */